package net.lab1024.sa.admin.module.business.order.domain.vo;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.v3.oas.annotations.media.Schema;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.Data;
import net.lab1024.sa.admin.module.business.order.constant.OrdersStatusEnum;
import net.lab1024.sa.base.common.json.deserializer.FileKeyVoDeserializer;
import net.lab1024.sa.base.common.json.serializer.FileKeyVoSerializer;
import net.lab1024.sa.base.common.swagger.SchemaEnum;
import net.lab1024.sa.base.common.validator.enumeration.CheckEnum;

/**
 * 订单 列表VO
 *
 * @Author syf
 * @Date 2025-05-16 10:02:50
 * @Copyright 畅想科技
 */

@Data
public class OrderVO {


    @Schema(description = "订单编号")
    private String orderId;

    @SchemaEnum(OrdersStatusEnum.class)
    private Integer orderKind;
    @Schema(description = "订单状态")
    private Long orderState;
    @Schema(description = "订单状态")
    private String orderStateName;
//    @Schema(description = "订单类型：0:代取快递;1:代买物品;2:代拿外卖;3:代办事")
//    private Long orderKind;
//    @Schema(description = "订单类型：0:代取快递;1:代买物品;2:代拿外卖;3:代办事")
//    private String orderKindName;
    @Schema(description = "订单起点：跑腿路程起点")
    private Long orderStart;
    @Schema(description = "订单起点：跑腿路程起点")
    private String orderStartName;
    @Schema(description = "订单终点：跑腿路程终点")
    private Long orderEnd;
    @Schema(description = "订单终点：跑腿路程终点")
    private String orderEndName;
    @Schema(description = "订单图片")
    @JsonSerialize(using = FileKeyVoSerializer.class)
    @JsonDeserialize(using = FileKeyVoDeserializer.class)
    private String orderPic;
    @Schema(description = "订单截止时间")
    private LocalDateTime deadTime;
    @Schema(description = "订单金额")
    private BigDecimal orderPrice;

    @Schema(description = "备注内容")
    private String reMark;

    @Schema(description = "订单发布时间")
    private LocalDateTime orderOpen;

    @Schema(description = "订单所属用户")
    private String userId;
    @Schema(description = "用户昵称")
    private String userName;
    @Schema(description = "用户联系方式")
    private String userPhone;
    @Schema(description = "订单内容名称")
    private String orderContentName;
    @Schema(description = "订单内容")
    private String orderContent;
    @Schema(description = "订单数量")
    private String orderNum;

    @Schema(description = "订单审核状态")
    private Integer isSh;
    @Schema(description = "接单员信息")
    private String jdyId;
    @Schema(description = "审核人员")
    private String jdyName;
    @Schema(description = "接单员联系方式")
    private String jdyPhone;
    @Schema(description = "接单员接单时间")
    private LocalDateTime jdyTime;

    @Schema(description = "订单完成时间")
    private LocalDateTime competeTime;
    @Schema(description = "信息创建人员")
    private String createBy;

    @Schema(description = "信息创建时间")
    private LocalDateTime createTime;
    @Schema(description = "信息更改人员")
    private String updateBy;

    @Schema(description = "信息修改时间")
    private LocalDateTime updateTime;

}